#!/bin/bash
# 内存Cookie提取工具运行脚本

# 颜色设置
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

# 显示标题
echo -e "${BLUE}============================================${NC}"
echo -e "${GREEN}        内存Cookie提取工具 v1.0           ${NC}"
echo -e "${BLUE}============================================${NC}"

# 检查依赖
echo -e "${YELLOW}正在检查依赖...${NC}"
if ! command -v python3 &> /dev/null; then
    echo -e "${RED}错误: 未找到 python3 命令${NC}"
    echo -e "请安装 Python 3.6 或更高版本"
    exit 1
fi

# 检查Frida是否安装
if ! python3 -c "import frida" &> /dev/null; then
    echo -e "${YELLOW}正在安装必要的依赖...${NC}"
    pip3 install -r requirements.txt
    
    # 再次检查是否安装成功
    if ! python3 -c "import frida" &> /dev/null; then
        echo -e "${RED}错误: 无法安装Frida${NC}"
        echo -e "请尝试手动安装: pip3 install frida frida-tools"
        exit 1
    fi
fi

echo -e "${GREEN}依赖检查完成!${NC}"

# 为main.py添加执行权限
chmod +x main.py

# 显示菜单
show_menu() {
    echo -e "${BLUE}============================================${NC}"
    echo -e "${GREEN}请选择操作:${NC}"
    echo -e "1) 查找可能包含Cookie的进程"
    echo -e "2) 按名称查找进程"
    echo -e "3) 查看进程详情(需要PID)"
    echo -e "4) 从进程提取Cookie(标准模式)"
    echo -e "5) 从进程提取Cookie(增强模式)"
    echo -e "6) 帮助信息"
    echo -e "0) 退出"
    echo -e "${BLUE}============================================${NC}"
    echo -n "请输入选项 [0-6]: "
}

# 主循环
while true; do
    show_menu
    read choice
    
    case $choice in
        1) 
            echo -e "${YELLOW}查找可能包含Cookie的进程...${NC}"
            python3 main.py find -c -d
            echo -e "${GREEN}完成!${NC}"
            ;;
        2)
            echo -n "请输入进程名称: "
            read process_name
            echo -e "${YELLOW}查找名称包含 '$process_name' 的进程...${NC}"
            python3 main.py find -n "$process_name" -d
            echo -e "${GREEN}完成!${NC}"
            ;;
        3)
            echo -n "请输入进程PID: "
            read pid
            echo -e "${YELLOW}获取PID为 $pid 的进程详情...${NC}"
            python3 main.py find -p $pid
            echo -e "${GREEN}完成!${NC}"
            ;;
        4)
            echo -n "请输入目标进程PID或名称: "
            read target
            echo -e "${YELLOW}从 '$target' 提取Cookie(标准模式)...${NC}"
            echo -e "${RED}注意: 按Ctrl+C停止提取${NC}"
            python3 main.py extract "$target"
            echo -e "${GREEN}完成!${NC}"
            ;;
        5)
            echo -n "请输入目标进程PID或名称: "
            read target
            echo -e "${YELLOW}从 '$target' 提取Cookie(增强模式)...${NC}"
            echo -e "${RED}注意: 按Ctrl+C停止提取${NC}"
            python3 main.py extract "$target" -a
            echo -e "${GREEN}完成!${NC}"
            ;;
        6)
            echo -e "${BLUE}============================================${NC}"
            echo -e "${GREEN}帮助信息:${NC}"
            echo -e "此工具用于从运行中的程序内存提取Cookie信息。"
            echo -e "- 首先使用选项1或2查找目标进程"
            echo -e "- 记下感兴趣进程的PID"
            echo -e "- 使用选项4或5从该进程提取Cookie"
            echo -e "- 提取的Cookie将保存在cookies_extracted目录中"
            echo -e ""
            echo -e "注意: 此工具需要管理员/root权限才能访问其他进程的内存"
            echo -e "      在macOS上，可能需要部分禁用SIP才能完全发挥功能"
            echo -e "${BLUE}============================================${NC}"
            ;;
        0)
            echo -e "${GREEN}感谢使用!${NC}"
            exit 0
            ;;
        *)
            echo -e "${RED}无效的选项，请重试${NC}"
            ;;
    esac
    
    echo ""
    echo -n "按Enter键继续..."
    read
    clear
done 